#ifndef MOVETRACKER_H_
#define MOVETRACKER_H_

#include "Enums.h"
#include "Move.h"
//#include "../Board/Square.h"
//#include "../Pieces/Piece.h"

#include <vector>
using namespace std;

namespace Core
{
	class MoveTracker
	{
	public:
		MoveTracker(void);
		~MoveTracker(void);

		int moveCount() const;
		const Move * at(int ) const;
		Move * last() const;

		const Move * undo();
		const Move * redo();
		int newMove(const Move &mv);

		void clear();

	private:
		int _head;
		vector<Move*> _moves;

	};
}

#endif